package huanzhao.erp.mapper;

import huanzhao.erp.domain.entity.Team;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import huanzhao.erp.domain.vo.TeamVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TeamMapper extends BaseMapper<Team> {
    /**
     * 根据id查询团队
     *
     * @param teamId 团队id
     * @return Team
     */
    Team getTeamById(@Param("teamId") Long teamId);

    /**
     * 获取所有团队id
     *
     * @return List<Long>
     * 2024/6/12 下午8:20:12
     */
    List<Long> getAllTeamIds();

    /**
     * 获取所有团队
     *
     * @return List<Team>
     * 2024/6/12 下午8:47:29
     */
    List<Team> getAllTeams();

    /**
     * 根据团队名获取团队
     *
     * @param name 团队名
     * @return Team
     * 2024/6/12 下午9:10:15
     */
    Team getTeamByName(@Param("name") String name);

    /**
     * 获取团队员工数量
     *
     * @param teamId 团队id
     * @return int
     * 2024/6/12 下午9:46:12
     */
    int getTeamStaffNum(@Param("teamId") Long teamId);

    /**
     * 根据手机id查询团队
     *
     * @param phoneId 手机id
     * @return Team
     * 2024/6/20 下午5:16:02
     */
    Team getTeamByPhoneId(@Param("phoneId") Long phoneId);

    /**
     * 获取当前员工的所有归属团队
     *
     * @param staffId 员工id
     * @return List<Team>
     * 2024/6/22 下午4:33:17
     */
    List<Team> getStaffBelongTeams(@Param("staffId") Long staffId);

    /**
     * 检查员工是否为团队负责人
     *
     * @param staffId 员工id
     * @param teamId  团队id
     * @return boolean
     * 2024/7/21 下午2:55:57
     */
    boolean isTeamLeader(@Param("staffId") Long staffId, @Param("teamId") Long teamId);

    boolean exists(@Param("teamId") long teamId);

    /**
     * 获取所有团队基本信息
     *
     * @return List<TeamVO>
     * 2024/10/4 11:33:53
     */
    List<TeamVO> getAllTeamBasic();

    Long getTeamLearId(@Param("teamId") Long teamId);
}




